package global

import (
	"fmt"
	"github.com/spf13/viper"
	"os"
	"path/filepath"
)

var Conf = new(Config)

type Config struct {
	Log         Log         `json:"log"`
	Tcp         Tcp         `json:"tcp"`
	AccountInfo AccountInfo `json:"accountInfo"`
}

// Log 日志文件配置
type Log struct {
	Name string `yaml:"name"`
	Lv   string `yaml:"lv"`
}

// Tcp tcp服务配置
type Tcp struct {
	Ip   string `yaml:"ip"`
	Port int    `yaml:"port"`
}

// AccountInfo 账户信息
type AccountInfo struct {
	UserName string `json:"userName"`
	Password string `json:"password"`
}

func InitConfig() {
	currentPath, err := os.Executable()
	v := viper.New()
	v.SetConfigType("yaml")
	v.SetConfigName("config")
	v.AddConfigPath(filepath.Dir(currentPath))
	err = v.ReadInConfig()
	if err != nil {
		panic(fmt.Sprintf("加载配置文件失败： %v", err))
	}
	err = v.Unmarshal(Conf)
	if err != nil {
		panic(fmt.Sprintf("不合法的配置信息： %v", err))
	}
}
